/*
 * File:   TranscriberMetaInfoTest.h
 * Author: Guilherme Monteiro
 *
 */

#ifndef TRANSCRIBERMETAINFOTEST_H
#define	TRANSCRIBERMETAINFOTEST_H

#include <cppunit/extensions/HelperMacros.h>

#include "../headers/MetaInfo.h"
#include "../headers/InvalidFileException.h"
#include "../headers/NullImageException.h"
#include "../headers/Model1.h"
#include "../headers/TranscriberMetaInfo.h"

class TranscriberMetaInfoTest : public CPPUNIT_NS::TestFixture {
    CPPUNIT_TEST_SUITE(TranscriberMetaInfoTest);

    CPPUNIT_TEST(testTranscriberMetaInfo1);
    CPPUNIT_TEST(testTranscriberMetaInfo2);
    
    CPPUNIT_TEST(testGetBookName);
    CPPUNIT_TEST(testGetHighResolutionImageCutIncompletePath);
    CPPUNIT_TEST(testGetHighResolutionImagePath);
    CPPUNIT_TEST(testGetInputFilePath);
    CPPUNIT_TEST(testGetLogImageIncompletePath);
    CPPUNIT_TEST(testGetLowResolutionImageCutIncompletePath);
    CPPUNIT_TEST(testGetLowResolutionImagePath);
    CPPUNIT_TEST(testGetOutputFilePath);
    CPPUNIT_TEST(testGetPageName);
    
    CPPUNIT_TEST(testSetHighResolutionImagePath1);
    CPPUNIT_TEST(testSetHighResolutionImagePath2);
    
    CPPUNIT_TEST(testSetLowResolutionImagePath1);
    CPPUNIT_TEST(testSetLowResolutionImagePath2);
    
    CPPUNIT_TEST_SUITE_END();

public:
    TranscriberMetaInfoTest();
    virtual ~TranscriberMetaInfoTest();
    void setUp();
    void tearDown();

private:
    GenericModel* model;
    string path;
    
    string dotdot;
    string bar;
    
    string books;
    string bookName;
    string pageName;
    string tabelasAlta;
    string tabelasBaixa;
    string logImages;
    string baixaResolucao;
    string altaResolucao;
    string entrada;
    string saida;
    string metadados;
    
    TranscriberMetaInfo* transcriberMetaInfo;
    
    void testTranscriberMetaInfo1();
    void testTranscriberMetaInfo2();
    
    void testGetBookName();
    void testGetHighResolutionImageCutIncompletePath();
    void testGetHighResolutionImagePath();
    void testGetInputFilePath();
    void testGetLogImageIncompletePath();
    void testGetLowResolutionImageCutIncompletePath();
    void testGetLowResolutionImagePath();
    void testGetOutputFilePath();
    void testGetPageName();
    
    void testSetHighResolutionImagePath1();
    void testSetHighResolutionImagePath2();
    
    void testSetLowResolutionImagePath1();
    void testSetLowResolutionImagePath2();
};

#endif	/* TRANSCRIBERMETAINFOTEST_H */

